package com.gitee.qdbp.general.system.api.permission.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.gitee.qdbp.general.system.enums.SysResState;
import com.gitee.qdbp.general.system.enums.SysResType;

/**
 * 资源信息查询类
 *
 * @author zhh
 * @version 180514
 */
public class ResourceCoreWhere extends ResourceCoreBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 资源ID列表 **/
    private List<String> ids;

    /** 资源ID前模匹配条件 **/
    private String idStarts;

    /** 资源ID后模匹配条件 **/
    private String idEnds;

    /** 资源ID模糊查询条件 **/
    private String idLike;

    /** 使用场景空值/非空值查询 **/
    private Boolean sceneTypeIsNull;

    /** 使用场景前模匹配条件 **/
    private String sceneTypeStarts;

    /** 使用场景后模匹配条件 **/
    private String sceneTypeEnds;

    /** 使用场景模糊查询条件 **/
    private String sceneTypeLike;

    /** 资源KEY列表 **/
    private List<String> keys;

    /** 资源KEY前模匹配条件 **/
    private String keyStarts;

    /** 资源KEY后模匹配条件 **/
    private String keyEnds;

    /** 资源KEY模糊查询条件 **/
    private String keyLike;

    /** 资源名称空值/非空值查询 **/
    private Boolean nameIsNull;

    /** 资源名称前模匹配条件 **/
    private String nameStarts;

    /** 资源名称后模匹配条件 **/
    private String nameEnds;

    /** 资源名称模糊查询条件 **/
    private String nameLike;

    /** 资源类型(0.模块|1.菜单组|2.菜单|3.操作)空值/非空值查询 **/
    private Boolean typeIsNull;

    /** 资源类型(0.模块|1.菜单组|2.菜单|3.操作)列表 **/
    private List<SysResType> types;

    /** 页面地址空值/非空值查询 **/
    private Boolean urlIsNull;

    /** 页面地址前模匹配条件 **/
    private String urlStarts;

    /** 页面地址后模匹配条件 **/
    private String urlEnds;

    /** 页面地址模糊查询条件 **/
    private String urlLike;

    /** 资源选项空值/非空值查询 **/
    private Boolean optionsIsNull;

    /** 排序号(越小越靠前)空值/非空值查询 **/
    private Boolean sortIndexIsNull;

    /** 最小排序号(越小越靠前) **/
    private Integer sortIndexMin;

    /** 最大排序号(越小越靠前) **/
    private Integer sortIndexMax;

    /** 上级资源ID空值/非空值查询 **/
    private Boolean parentIdIsNull;

    /** 上级资源ID前模匹配条件 **/
    private String parentIdStarts;

    /** 上级资源ID后模匹配条件 **/
    private String parentIdEnds;

    /** 上级资源ID模糊查询条件 **/
    private String parentIdLike;

    /** 描述空值/非空值查询 **/
    private Boolean descriptionIsNull;

    /** 描述前模匹配条件 **/
    private String descriptionStarts;

    /** 描述后模匹配条件 **/
    private String descriptionEnds;

    /** 描述模糊查询条件 **/
    private String descriptionLike;

    /** 状态(0.正常|1.禁用)空值/非空值查询 **/
    private Boolean stateIsNull;

    /** 状态(0.正常|1.禁用)列表 **/
    private List<SysResState> states;

    /** 获取资源ID列表 **/
    public List<String> getIds() {
        return ids;
    }

    /** 设置资源ID列表 **/
    public void setIds(List<String> ids) {
        this.ids = ids;
    }

    /** 增加资源ID **/
    public void addId(String... ids) {
        if (this.ids == null) {
            this.ids = new ArrayList<>();
        }
        this.ids.addAll(Arrays.asList(ids));
    }

    /** 获取资源ID前模匹配条件 **/
    public String getIdStarts() {
        return idStarts;
    }

    /** 设置资源ID前模匹配条件 **/
    public void setIdStarts(String idStarts) {
        this.idStarts = idStarts;
    }

    /** 获取资源ID后模匹配条件 **/
    public String getIdEnds() {
        return idEnds;
    }

    /** 设置资源ID后模匹配条件 **/
    public void setIdEnds(String idEnds) {
        this.idEnds = idEnds;
    }

    /** 获取资源ID模糊查询条件 **/
    public String getIdLike() {
        return idLike;
    }

    /** 设置资源ID模糊查询条件 **/
    public void setIdLike(String idLike) {
        this.idLike = idLike;
    }

    /** 判断使用场景是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getSceneTypeIsNull() {
        return sceneTypeIsNull;
    }

    /**
     * 设置使用场景空值查询(true:空值查询|false:非空值查询)
     *
     * @param sceneTypeIsNull 使用场景空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSceneTypeIsNull(Boolean sceneTypeIsNull) {
        this.sceneTypeIsNull = sceneTypeIsNull;
    }

    /** 获取使用场景前模匹配条件 **/
    public String getSceneTypeStarts() {
        return sceneTypeStarts;
    }

    /** 设置使用场景前模匹配条件 **/
    public void setSceneTypeStarts(String sceneTypeStarts) {
        this.sceneTypeStarts = sceneTypeStarts;
    }

    /** 获取使用场景后模匹配条件 **/
    public String getSceneTypeEnds() {
        return sceneTypeEnds;
    }

    /** 设置使用场景后模匹配条件 **/
    public void setSceneTypeEnds(String sceneTypeEnds) {
        this.sceneTypeEnds = sceneTypeEnds;
    }

    /** 获取使用场景模糊查询条件 **/
    public String getSceneTypeLike() {
        return sceneTypeLike;
    }

    /** 设置使用场景模糊查询条件 **/
    public void setSceneTypeLike(String sceneTypeLike) {
        this.sceneTypeLike = sceneTypeLike;
    }

    /** 获取资源KEY列表 **/
    public List<String> getKeys() {
        return keys;
    }

    /** 设置资源KEY列表 **/
    public void setKeys(List<String> keys) {
        this.keys = keys;
    }

    /** 增加资源KEY **/
    public void addKey(String... keys) {
        if (this.keys == null) {
            this.keys = new ArrayList<>();
        }
        this.keys.addAll(Arrays.asList(keys));
    }

    /** 获取资源KEY前模匹配条件 **/
    public String getKeyStarts() {
        return keyStarts;
    }

    /** 设置资源KEY前模匹配条件 **/
    public void setKeyStarts(String keyStarts) {
        this.keyStarts = keyStarts;
    }

    /** 获取资源KEY后模匹配条件 **/
    public String getKeyEnds() {
        return keyEnds;
    }

    /** 设置资源KEY后模匹配条件 **/
    public void setKeyEnds(String keyEnds) {
        this.keyEnds = keyEnds;
    }

    /** 获取资源KEY模糊查询条件 **/
    public String getKeyLike() {
        return keyLike;
    }

    /** 设置资源KEY模糊查询条件 **/
    public void setKeyLike(String keyLike) {
        this.keyLike = keyLike;
    }

    /** 判断资源名称是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getNameIsNull() {
        return nameIsNull;
    }

    /**
     * 设置资源名称空值查询(true:空值查询|false:非空值查询)
     *
     * @param nameIsNull 资源名称空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setNameIsNull(Boolean nameIsNull) {
        this.nameIsNull = nameIsNull;
    }

    /** 获取资源名称前模匹配条件 **/
    public String getNameStarts() {
        return nameStarts;
    }

    /** 设置资源名称前模匹配条件 **/
    public void setNameStarts(String nameStarts) {
        this.nameStarts = nameStarts;
    }

    /** 获取资源名称后模匹配条件 **/
    public String getNameEnds() {
        return nameEnds;
    }

    /** 设置资源名称后模匹配条件 **/
    public void setNameEnds(String nameEnds) {
        this.nameEnds = nameEnds;
    }

    /** 获取资源名称模糊查询条件 **/
    public String getNameLike() {
        return nameLike;
    }

    /** 设置资源名称模糊查询条件 **/
    public void setNameLike(String nameLike) {
        this.nameLike = nameLike;
    }

    /** 判断资源类型(0.模块|1.菜单组|2.菜单|3.操作)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getTypeIsNull() {
        return typeIsNull;
    }

    /**
     * 设置资源类型(0.模块|1.菜单组|2.菜单|3.操作)空值查询(true:空值查询|false:非空值查询)
     *
     * @param typeIsNull 资源类型(0.模块|1.菜单组|2.菜单|3.操作)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setTypeIsNull(Boolean typeIsNull) {
        this.typeIsNull = typeIsNull;
    }

    /** 获取资源类型(0.模块|1.菜单组|2.菜单|3.操作)列表 **/
    public List<SysResType> getTypes() {
        return types;
    }

    /** 设置资源类型(0.模块|1.菜单组|2.菜单|3.操作)列表 **/
    public void setTypes(List<SysResType> types) {
        this.types = types;
    }

    /** 增加资源类型(0.模块|1.菜单组|2.菜单|3.操作) **/
    public void addType(SysResType... types) {
        if (this.types == null) {
            this.types = new ArrayList<>();
        }
        this.types.addAll(Arrays.asList(types));
    }

    /** 判断页面地址是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getUrlIsNull() {
        return urlIsNull;
    }

    /** 设置页面地址空值查询(true:空值查询|false:非空值查询) **/
    public void setUrlIsNull(Boolean urlIsNull) {
        this.urlIsNull = urlIsNull;
    }

    /** 获取页面地址前模匹配条件 **/
    public String getUrlStarts() {
        return urlStarts;
    }

    /** 设置页面地址前模匹配条件 **/
    public void setUrlStarts(String urlStarts) {
        this.urlStarts = urlStarts;
    }

    /** 获取页面地址后模匹配条件 **/
    public String getUrlEnds() {
        return urlEnds;
    }

    /** 设置页面地址后模匹配条件 **/
    public void setUrlEnds(String urlEnds) {
        this.urlEnds = urlEnds;
    }

    /** 获取页面地址模糊查询条件 **/
    public String getUrlLike() {
        return urlLike;
    }

    /** 设置页面地址模糊查询条件 **/
    public void setUrlLike(String urlLike) {
        this.urlLike = urlLike;
    }

    /** 判断资源选项是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getOptionsIsNull() {
        return optionsIsNull;
    }

    /** 设置资源选项空值查询(true:空值查询|false:非空值查询) **/
    public void setOptionsIsNull(Boolean optionsIsNull) {
        this.optionsIsNull = optionsIsNull;
    }

    /** 判断排序号(越小越靠前)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getSortIndexIsNull() {
        return sortIndexIsNull;
    }

    /**
     * 设置排序号(越小越靠前)空值查询(true:空值查询|false:非空值查询)
     *
     * @param sortIndexIsNull 排序号(越小越靠前)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSortIndexIsNull(Boolean sortIndexIsNull) {
        this.sortIndexIsNull = sortIndexIsNull;
    }

    /** 获取最小排序号(越小越靠前) **/
    public Integer getSortIndexMin() {
        return sortIndexMin;
    }

    /** 设置最小排序号(越小越靠前) **/
    public void setSortIndexMin(Integer sortIndexMin) {
        this.sortIndexMin = sortIndexMin;
    }

    /** 获取最大排序号(越小越靠前) **/
    public Integer getSortIndexMax() {
        return sortIndexMax;
    }

    /** 设置最大排序号(越小越靠前) **/
    public void setSortIndexMax(Integer sortIndexMax) {
        this.sortIndexMax = sortIndexMax;
    }

    /** 判断上级资源ID是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getParentIdIsNull() {
        return parentIdIsNull;
    }

    /**
     * 设置上级资源ID空值查询(true:空值查询|false:非空值查询)
     *
     * @param parentIdIsNull 上级资源ID空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setParentIdIsNull(Boolean parentIdIsNull) {
        this.parentIdIsNull = parentIdIsNull;
    }

    /** 获取上级资源ID前模匹配条件 **/
    public String getParentIdStarts() {
        return parentIdStarts;
    }

    /** 设置上级资源ID前模匹配条件 **/
    public void setParentIdStarts(String parentIdStarts) {
        this.parentIdStarts = parentIdStarts;
    }

    /** 获取上级资源ID后模匹配条件 **/
    public String getParentIdEnds() {
        return parentIdEnds;
    }

    /** 设置上级资源ID后模匹配条件 **/
    public void setParentIdEnds(String parentIdEnds) {
        this.parentIdEnds = parentIdEnds;
    }

    /** 获取上级资源ID模糊查询条件 **/
    public String getParentIdLike() {
        return parentIdLike;
    }

    /** 设置上级资源ID模糊查询条件 **/
    public void setParentIdLike(String parentIdLike) {
        this.parentIdLike = parentIdLike;
    }

    /** 判断描述是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getDescriptionIsNull() {
        return descriptionIsNull;
    }

    /** 设置描述空值查询(true:空值查询|false:非空值查询) **/
    public void setDescriptionIsNull(Boolean descriptionIsNull) {
        this.descriptionIsNull = descriptionIsNull;
    }

    /** 获取描述前模匹配条件 **/
    public String getDescriptionStarts() {
        return descriptionStarts;
    }

    /** 设置描述前模匹配条件 **/
    public void setDescriptionStarts(String descriptionStarts) {
        this.descriptionStarts = descriptionStarts;
    }

    /** 获取描述后模匹配条件 **/
    public String getDescriptionEnds() {
        return descriptionEnds;
    }

    /** 设置描述后模匹配条件 **/
    public void setDescriptionEnds(String descriptionEnds) {
        this.descriptionEnds = descriptionEnds;
    }

    /** 获取描述模糊查询条件 **/
    public String getDescriptionLike() {
        return descriptionLike;
    }

    /** 设置描述模糊查询条件 **/
    public void setDescriptionLike(String descriptionLike) {
        this.descriptionLike = descriptionLike;
    }

    /** 判断状态(0.正常|1.禁用)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getStateIsNull() {
        return stateIsNull;
    }

    /**
     * 设置状态(0.正常|1.禁用)空值查询(true:空值查询|false:非空值查询)
     *
     * @param stateIsNull 状态(0.正常|1.禁用)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setStateIsNull(Boolean stateIsNull) {
        this.stateIsNull = stateIsNull;
    }

    /** 获取状态(0.正常|1.禁用)列表 **/
    public List<SysResState> getStates() {
        return states;
    }

    /** 设置状态(0.正常|1.禁用)列表 **/
    public void setStates(List<SysResState> states) {
        this.states = states;
    }

    /** 增加状态(0.正常|1.禁用) **/
    public void addState(SysResState... states) {
        if (this.states == null) {
            this.states = new ArrayList<>();
        }
        this.states.addAll(Arrays.asList(states));
    }

}